package com.bootx.pojo;

import com.bootx.entity.Tool;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;

import java.util.ArrayList;
import java.util.List;

@JsonIgnoreProperties(ignoreUnknown = true)
public class ToolPojo {

    @JsonProperty("code")
    private Integer code;
    @JsonProperty("data")
    private DataBean data;

    public Integer getCode() {
        return code;
    }

    public void setCode(Integer code) {
        this.code = code;
    }

    public DataBean getData() {
        return data;
    }

    public void setData(DataBean data) {
        this.data = data;
    }

    @JsonIgnoreProperties(ignoreUnknown = true)
    public static class DataBean {

        @JsonProperty("id")
        private String id;
        @JsonProperty("type")
        private String type;
        @JsonProperty("name")
        private String name;
        @JsonProperty("short_name")
        private String shortName;
        @JsonProperty("img")
        private String img;
        @JsonProperty("desc")
        private String desc;
        @JsonProperty("sort")
        private Integer sort;
        @JsonProperty("view")
        private Integer view;
        @JsonProperty("path")
        private String path;
        @JsonProperty("title")
        private String title;
        @JsonProperty("keywords")
        private String keywords;
        @JsonProperty("description")
        private String description;
        @JsonProperty("is_outline")
        private Boolean isOutline;
        @JsonProperty("page")
        private String page;
        @JsonProperty("titletools")
        private String titletools;
        @JsonProperty("keywordstools")
        private String keywordstools;
        @JsonProperty("descriptiontools")
        private String descriptiontools;
        @JsonProperty("form")
        private List<FormBean> form;

        public String getId() {
            return id;
        }

        public void setId(String id) {
            this.id = id;
        }

        public String getType() {
            return type;
        }

        public void setType(String type) {
            this.type = type;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public String getShortName() {
            return shortName;
        }

        public void setShortName(String shortName) {
            this.shortName = shortName;
        }

        public String getImg() {
            return img;
        }

        public void setImg(String img) {
            this.img = img;
        }

        public String getDesc() {
            return desc;
        }

        public void setDesc(String desc) {
            this.desc = desc;
        }

        public Integer getSort() {
            return sort;
        }

        public void setSort(Integer sort) {
            this.sort = sort;
        }

        public Integer getView() {
            return view;
        }

        public void setView(Integer view) {
            this.view = view;
        }

        public String getPath() {
            return path;
        }

        public void setPath(String path) {
            this.path = path;
        }

        public String getTitle() {
            return title;
        }

        public void setTitle(String title) {
            this.title = title;
        }

        public String getKeywords() {
            return keywords;
        }

        public void setKeywords(String keywords) {
            this.keywords = keywords;
        }

        public String getDescription() {
            return description;
        }

        public void setDescription(String description) {
            this.description = description;
        }

        public Boolean isIsOutline() {
            return isOutline;
        }

        public void setIsOutline(Boolean isOutline) {
            this.isOutline = isOutline;
        }

        public String getPage() {
            return page;
        }

        public void setPage(String page) {
            this.page = page;
        }

        public String getTitletools() {
            return titletools;
        }

        public void setTitletools(String titletools) {
            this.titletools = titletools;
        }

        public String getKeywordstools() {
            return keywordstools;
        }

        public void setKeywordstools(String keywordstools) {
            this.keywordstools = keywordstools;
        }

        public String getDescriptiontools() {
            return descriptiontools;
        }

        public void setDescriptiontools(String descriptiontools) {
            this.descriptiontools = descriptiontools;
        }

        public List<FormBean> getForm() {
            return form;
        }

        public void setForm(List<FormBean> form) {
            this.form = form;
        }

        @JsonIgnoreProperties(ignoreUnknown = true)
        public static class FormBean {

            @JsonProperty("key")
            private String key;
            @JsonProperty("type")
            private Integer type;
            @JsonProperty("label")
            private String label;
            @JsonProperty("isHigh")
            private Boolean isHigh;
            @JsonProperty("isTitle")
            private Boolean isTitle;
            @JsonProperty("maxLength")
            private Integer maxLength;
            @JsonProperty("isRequired")
            private Boolean isRequired;
            @JsonProperty("placeholder")
            private String placeholder;
            @JsonProperty("defaultValue")
            private String defaultValue;
            @JsonProperty("allowCreate")
            private Boolean allowCreate;
            @JsonProperty("relationKey")
            private String relationKey;
            @JsonProperty("isLocalCache")
            private Boolean isLocalCache;
            @JsonProperty("tips")
            private List<?> tips;
            @JsonProperty("options")
            private List<Tool.Form.OptionMap> options = new ArrayList<>();

            public String getKey() {
                return key;
            }

            public void setKey(String key) {
                this.key = key;
            }

            public Integer getType() {
                return type;
            }

            public void setType(Integer type) {
                this.type = type;
            }

            public String getLabel() {
                return label;
            }

            public void setLabel(String label) {
                this.label = label;
            }

            public Boolean isIsHigh() {
                return isHigh;
            }

            public void setIsHigh(Boolean isHigh) {
                this.isHigh = isHigh;
            }

            public Boolean isIsTitle() {
                return isTitle;
            }

            public void setIsTitle(Boolean isTitle) {
                this.isTitle = isTitle;
            }

            public Integer getMaxLength() {
                return maxLength;
            }

            public void setMaxLength(Integer maxLength) {
                this.maxLength = maxLength;
            }

            public Boolean getIsRequired() {
                return isRequired;
            }

            public void setIsRequired(Boolean isRequired) {
                this.isRequired = isRequired;
            }

            public String getPlaceholder() {
                return placeholder;
            }

            public void setPlaceholder(String placeholder) {
                this.placeholder = placeholder;
            }

            public String getDefaultValue() {
                return defaultValue;
            }

            public void setDefaultValue(String defaultValue) {
                this.defaultValue = defaultValue;
            }

            public Boolean getAllowCreate() {
                return allowCreate;
            }

            public void setAllowCreate(Boolean allowCreate) {
                this.allowCreate = allowCreate;
            }

            public String getRelationKey() {
                return relationKey;
            }

            public void setRelationKey(String relationKey) {
                this.relationKey = relationKey;
            }

            public Boolean isIsLocalCache() {
                return isLocalCache;
            }

            public void setIsLocalCache(Boolean isLocalCache) {
                this.isLocalCache = isLocalCache;
            }

            public List<?> getTips() {
                return tips;
            }

            public void setTips(List<?> tips) {
                this.tips = tips;
            }

            public List<Tool.Form.OptionMap> getOptions() {
                return options;
            }

            public void setOptions(List<Tool.Form.OptionMap> options) {
                this.options = options;
            }
        }
    }
}
